﻿namespace Resharper.Abstractions.CodeDom.Expressions.InvocationExpressions
{
  using System;
  using JetBrains.Annotations;
  using JetBrains.ReSharper.Psi.CSharp.Tree;

  /// <summary>Defines the <see cref="Argument"/> class.</summary>
  public class Argument
  {
    #region Constructors and Destructors

    /// <summary>Initializes a new instance of the <see cref="Argument"/> class.</summary>
    /// <param name="argument">The argument.</param>
    internal Argument([NotNull] ICSharpArgument argument)
    {
      if (argument == null)
      {
        throw new ArgumentNullException("argument");
      }

      this.InternalArgument = argument;
    }

    #endregion

    #region Properties

    /// <summary>
    /// Gets or sets the argument.
    /// </summary>
    /// <value>The argument.</value>
    [NotNull]
    internal ICSharpArgument InternalArgument { get; set; }

    #endregion
  }
}